#pragma once
#include "Strategy.h"
#include <algorithm>
/**
 * Concrete Strategies implement the algorithm while following the base Strategy
 * interface. The interface makes them interchangeable in the Context.
 */
class ConcreteStrategyA : public IStrategy
{
public:
    std::string DoAlgorithm(const std::vector<std::string>& data) const override
    {
        std::string result;
        std::for_each(std::begin(data), std::end(data), [&result](const std::string& letter) {
            result += letter;
            });
        std::sort(std::begin(result), std::end(result));

        return result;
    }
};